#ifndef __WINDOW_MANAGER_H__
#define __WINDOW_MANAGER_H__
#include <SDL.h>
#include "vec4.h"
#include <string>

class WindowManager {
public:
    const std::int32_t height;
    const std::int32_t width;
    const std::string title;
public:
    WindowManager(std::int32_t w = 800, std::int32_t h = 720, const std::string& t = "T3SR");
    WindowManager(const WindowManager&) = delete;
    WindowManager& operator = (const WindowManager&) = delete;
    
    void newFrame();
    void clear(const Color4f& color = Color4f{ 0.0f, 0.0f, 0.0f, 1.0f });
    void swap(const unsigned char* image);

    ~WindowManager();
private:
    SDL_Texture* mTexture;
    SDL_Window* mWindow = nullptr;
    SDL_Renderer* mRenderer = nullptr;
};

#endif